#include "Dialog.h"
#include "ui_Dialog.h"

#include <QDebug>
#include <QMouseEvent>
#include <QPainter>

Dialog::Dialog(QWidget* parent) : QDialog(parent), ui(new Ui::Dialog) {
    ui->setupUi(this);
}

Dialog::~Dialog() {
    delete ui;
}

void Dialog::paintEvent(QPaintEvent*) {
    //    QPainter painter(this);
    //    QPixmap  pixmap;
    //    pixmap.load(":/images/HeaderPhoto.jpeg");
    //    painter.drawPixmap(0, 0, 100, 100, pixmap);

    //    // 将(100, 100)设为坐标原点
    //    painter.translate(100, 100);
    //    painter.drawPixmap(0, 0, 100, 100, pixmap);

    //    // 获得以前图片的宽和高
    //    qreal width  = pixmap.width();
    //    qreal height = pixmap.height();
    //    // 将图片的宽和高都缩小，并且在给定的矩形内保持宽高的比值不变
    //    pixmap = pixmap.scaled(width * 0.3, height * 0.3,
    //    Qt::KeepAspectRatio); painter.drawPixmap(90, 90, pixmap);

    //    // 让图片的中心作为旋转的中心
    //    painter.translate(50, 50);
    //    painter.rotate(90);          // 顺时针旋转90度
    //    painter.translate(-50, -50); // 使原点复原
    //    painter.drawPixmap(100, 100, 100, 100, pixmap);

    //    painter.shear(0.5, 0); // 横向扭曲
    //    painter.drawPixmap(100, 0, 100, 100, pixmap);

    //    QPainter painter(this);
    //    painter.setBrush(Qt::red);
    //    painter.drawRect(0, 0, 100, 100);
    //    painter.setBrush(Qt::yellow);
    //    painter.drawRect(-50, -50, 100, 100);

    //    // 平移变换
    //    QPainter painter(this);
    //    painter.setBrush(Qt::yellow);
    //    painter.drawRect(0, 0, 50, 50);
    //    // 将点(100, 100)设为原点
    //    painter.translate(100, 100);
    //    painter.setBrush(Qt::red);
    //    painter.drawRect(0, 0, 50, 50);
    //    painter.translate(-100, -100);
    //    painter.drawLine(0, 0, 20, 20);

    //    // 缩放变换
    //    QPainter painter(this);
    //    painter.setBrush(Qt::yellow);
    //    painter.drawRect(0, 0, 100, 100);
    //    painter.scale(2, 2); // 放大两倍
    //    painter.setBrush(Qt::red);
    //    painter.drawRect(50, 50, 50, 50);

    //    // 扭曲变换
    //    QPainter painter(this);
    //    painter.setBrush(Qt::yellow);
    //    painter.drawRect(0, 0, 50, 50);
    //    painter.shear(0, 2); // 纵向扭曲变形
    //    painter.setBrush(Qt::red);
    //    painter.drawRect(50, 0, 50, 50);

    //    // 旋转变换
    //    QPainter painter(this);
    //    painter.drawLine(0, 0, 100, 0);
    //    // 以原点为中心，顺时针旋转30度
    //    painter.rotate(30);
    //    painter.drawLine(0, 0, 100, 0);
    //    painter.drawLine(100, 0, 100, 100);
    //    painter.translate(100, 100);
    //    painter.drawLine(0, 0, 100, 0);
    //    painter.rotate(30);
    //    painter.drawLine(0, 0, 100, 0);

    //    // 旋转变换
    //    QPainter painter(this);
    //    painter.drawLine(0, 0, 100, 0);
    //    // 以原点为中心，顺时针旋转30度
    //    painter.rotate(30);
    //    painter.drawLine(0, 0, 100, 0);
    //    // 反向旋转
    //    painter.rotate(-30);
    //    painter.translate(100, 100);
    //    painter.drawLine(0, 0, 100, 0);
    //    painter.rotate(30);
    //    painter.drawLine(0, 0, 100, 0);

    //    QPainter painter(this);
    //    painter.save(); // 保存坐标系状态
    //    painter.translate(100, 100);
    //    painter.drawLine(0, 0, 50, 50);
    //    painter.restore(); // 恢复以前的坐标系状态
    //    painter.drawLine(0, 0, 50, 50);

    //    QPainter painter(this);
    //    painter.drawRect(0, 0, 50, 50);
    //    painter.scale(1, 2);
    //    painter.drawRect(50, 50, 50, 50);

    //    QPainter painter(this);
    //    painter.drawLine(0, 0, 100, 0);
    //    painter.rotate(45);
    //    painter.setPen(Qt::red);
    //    painter.drawLine(0, 0, 100, 0);

    //    QPainter painter(this);
    //    QPixmap  pixmap(200, 200);
    //    pixmap.fill(Qt::red); // 背景填充为红色
    //    // 新建QPainter类对象，在pixmap上进行绘图
    //    QPainter pixPainter(&pixmap);
    //    // 在pixmap上的(0, 0)点和(50, 50)点之间绘制直线
    //    pixPainter.drawLine(0, 0, 50, 50);
    //    painter.drawPixmap(100, 100, pixmap);

    //    QPainter painter(this);
    //    QPixmap  pixmap(200, 200);
    //    // 放大前输出画布的大小
    //    qDebug() << pixmap.size();
    //    pixmap.fill(Qt::red);
    //    QPainter pixPainter(&pixmap);
    //    // 画布的坐标扩大2倍
    //    pixPainter.scale(2, 2);
    //    // 在画布上的(0, 0)点和(50, 50)点之间绘制直线
    //    pixPainter.drawLine(0, 0, 50, 50);
    //    // 放大后输出画布的大小
    //    qDebug() << pixmap.size();
    //    painter.drawPixmap(0, 0, pixmap);

    QPainter painter(this);
    QPixmap  pixmap(200, 200);
    qDebug() << pixmap.size();
    // 窗口坐标扩大2倍
    painter.scale(2, 2);
    pixmap.fill(Qt::red);
    QPainter pixPainter(&pixmap);
    pixPainter.drawLine(0, 0, 50, 50);
    qDebug() << pixmap.size();
    painter.drawPixmap(0, 0, pixmap);
}

void Dialog::mousePressEvent(QMouseEvent* event) {
    qDebug() << event->pos();
}
